February 18, 2022
n개의 음이 아닌 정수들이 있습니다. 이 정수들을 바꾸지않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 사용할 수 있는 숫자가 담긴 배열 numbers,타겟 넘버 target이 매개변수로 주어진다.
const subest = n => {
const arr = Array(n).fill(0)
const check = [...arr]
const result = []
const dfs = (n, depth) => {
const arr = []
if (depth === n) {
for (let i = 0; i < n; i++) {
if (check[i] === 1) {
arr.push(i + 1)
}
}
result.push(arr)
return
}
check[depth] = 1
dfs(n, depth + 1, check)
check[depth] = 0
dfs(n, depth + 1, check)
}
dfs(n, 0)
result.pop()
return result
}
test('subset', () => {
expect(subest(3)).toEqual([[1, 2, 3], [1, 2], [1, 3], [1], [2, 3], [2], [3]])
})
간단한 dfs문제라 테스트 하나로 끝난 것 같다.